From 348912dff4efe884dd66fe616144a6e1bdbfbe9b Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Sun, 3 Mar 2019 10:38:18 +0100 Subject: [PATCH] treeview: make sure separator nodes have a height > 0 In case the theme doesn't set a height/min-height for the treeview separator the treeview drawing gets confused and draws rows on top of each other depending on the redraw area. This is due to gtk_tree_view_get_row_height() assuming that a node with a height <= 0 is not set and not a separator and it will default to the expander size. Ideally gtk_tree_view_get_row_height() would know if it operates on a separator, but there are too many calls/levels, so just make sure the separator height is at least 1 (Adwaita already sets "min-height: 2px", so no change there) Cherry-picked from !614 to master --- gtk/gtktreeview.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index e8191a9fef..1a4ed0488a 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -5614,6 +5614,8 @@ validate_row (GtkTreeView *tree_view, if (is_separator) { height = separator_height; + /* gtk_tree_view_get_row_height() assumes separator nodes are > 0 */ + height = MAX (height, 1); } else { -- 2.30.2